This invention relates to high-speed processing of vector data and, more particularly, to a computer system and method that uses special multi-element registers, called "vector registers" to enhance vector processing operations.
Data processing operations can be classified as scalar, vector, or mixed. In scalar processing, the elements of scalar data are independent of each other as to their nature and the calculations or operations to be performed. In vector processing, the elements of vector data are arranged in arrays. The elements of an array are the same in nature and generally are each subjected to the same calculations or operations. Vector processing generally handles massive amounts of data to arrive at a result. A typical example of vector data is a matrix subjected to a mathematical operation.
One important application of vector processing is in the field of computer graphics. Typical applications include laser printers, digital copiers, video games, and three-dimensional image processors used for medical diagnostics. For example, in this setting vector operations upon matrices can be used to perform coordinate transformation.
Use of a computer designed to process scalar data for vector operations results in processing delays and slow overall throughput. For one thing, much of the time the processor has to wait while large arrays of vector data are being transferred element by element between the processing unit and the main memory of the computer. For another thing, valuable processor time is consumed generating an address for every element of the vector data transferred to the main memory. In addition, it is difficult to program such a scalar computer to perform vector operations in a high level language. As a result, much time consuming hand coding is required. For this reason, it has been common practice in the past to employ a dedicated computer to process vector data.